package com.xiaotu.storage;

import java.util.Date;

import org.springframework.stereotype.Component;

import com.xiaotu.common.util.Constants;
import com.xiaotu.common.util.DataRedisKeyUtils;
import com.xiaotu.storage.converter.AConverter;
import com.xiaotu.storage.converter.ConverterFactory;
import com.xiaotu.storage.model.CacheDataModel;

import net.sf.json.JSONObject;

@Component("DouBanMovieSmallCommentStorageProcessor")
public class DouBanMovieSmallCommentStorageProcessor extends AHSetStorageProcessor {
	
	
	public static final String[] FIELD_ARR = new String[]{"id","movie_name","source_name","comment", "comment_time", 
    		"thumbs_up_num", "thumbs_down_num","recoments_num","score","createtime"};
	
	private static final String[] CONVERT_ARR = new String[]{AConverter.STRING_CONVERT,AConverter.STRING_CONVERT,
	    		AConverter.STRING_CONVERT,AConverter.STRING_CONVERT,AConverter.STRING_CONVERT,
	    		AConverter.INTEGER_CONVERT,AConverter.INTEGER_CONVERT,AConverter.INTEGER_CONVERT,
	    		AConverter.INTEGER_CONVERT,AConverter.TIMESTAMP_CONVERT};
	
	private static final boolean[] THROW_ARR = new boolean[]{true, true, true, true, true, true,
	    		true, true,true,true};
	
	@Override
	protected String getRedisKey(Date date) {
		return DataRedisKeyUtils.getKey(Constants.DataRedisKey.DOUBAN_MOVIE_SHORT_COMMENT_YYYYMMDD, date);
	}

	@Override
	public String process(JSONObject target, CacheDataModel cacheData, Date date) {
		
		 return this.list2CSVLine(ConverterFactory.convert(target, FIELD_ARR, CONVERT_ARR,
	                THROW_ARR));
	}

	@Override
	public String getDataType() {
		return Constants.PageDataType.TV_REVIEWS;
	}

	@Override
	public String getTaskType() {
		return "MovieDouBanComment";
	}

}
